<!DOCTYPE HTML>
<html lang="en" >
    
    <head>
        
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <title>AFNetworking | 新浪微博开发笔记</title>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 2.1.0">
        
        
        <meta name="HandheldFriendly" content="true"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
        <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
        
    <link rel="stylesheet" href="../gitbook/style.css">
    
    

        
    
    
    <link rel="next" href="../frameworks/svprogresshud sdwebimage.html" />
    
    
    <link rel="prev" href="../frameworks/readme.html" />
    

        
    </head>
    <body>
        
        
    <div class="book" data-level="0.4.1" data-basepath=".." data-revision="Wed Oct 14 2015 07:05:46 GMT+0800 (CST)">
    

<div class="book-summary">
    <div class="book-search">
        <input type="text" placeholder="Type to search" class="form-control" />
    </div>
    <ul class="summary">
        
        
        
        

        

        
    
        <li class="chapter " data-level="0" data-path="index.html">
            
                
                    <a href="../index.html">
                        <i class="fa fa-check"></i>
                        
                        新浪微博笔记
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.1" data-path="project init/prepare project.html">
            
                
                    <a href="../project init/prepare project.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.</b>
                        
                        准备工作
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.1.1" data-path="project init/project deploy.html">
            
                
                    <a href="../project init/project deploy.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.1.</b>
                        
                        项目部署
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.2" data-path="project init/project settings.html">
            
                
                    <a href="../project init/project settings.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.2.</b>
                        
                        项目设置
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.3" data-path="project init/confirm architecture.html">
            
                
                    <a href="../project init/confirm architecture.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.3.</b>
                        
                        架构确定
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.1.4" data-path="project init/mvvm.html">
            
                
                    <a href="../project init/mvvm.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.1.4.</b>
                        
                        MVVM
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.2" data-path="create project/readme.html">
            
                
                    <a href="../create project/readme.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.</b>
                        
                        项目搭建
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.2.1" data-path="create project/create files.html">
            
                
                    <a href="../create project/create files.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.1.</b>
                        
                        创建文件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.2.2" data-path="create project/add child controllers.html">
            
                
                    <a href="../create project/add child controllers.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.2.</b>
                        
                        添加子控制器
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.2.3" data-path="create project/custom main tabbar.html">
            
                
                    <a href="../create project/custom main tabbar.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.3.</b>
                        
                        自定义 TabBar
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.2.4" data-path="create project/summary.html">
            
                
                    <a href="../create project/summary.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.2.4.</b>
                        
                        阶段性小结
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.3" data-path="visitor/readme.html">
            
                
                    <a href="../visitor/readme.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.</b>
                        
                        访客视图
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.3.1" data-path="visitor/base table view controller.html">
            
                
                    <a href="../visitor/base table view controller.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.1.</b>
                        
                        表格视图控制器基类
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.2" data-path="visitor/visitor login view.html">
            
                
                    <a href="../visitor/visitor login view.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.2.</b>
                        
                        用户登录视图
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.3" data-path="visitor/setup login info.html">
            
                
                    <a href="../visitor/setup login info.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.3.</b>
                        
                        设置未登录信息
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.4" data-path="visitor/home animation.html">
            
                
                    <a href="../visitor/home animation.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.4.</b>
                        
                        首页动画
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.5" data-path="visitor/login buttons delegate.html">
            
                
                    <a href="../visitor/login buttons delegate.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.5.</b>
                        
                        登录&amp;注册代理回调
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.3.6" data-path="visitor/appearance.html">
            
                
                    <a href="../visitor/appearance.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.3.6.</b>
                        
                        导航栏全局外观
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.4" data-path="frameworks/readme.html">
            
                
                    <a href="../frameworks/readme.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.4.</b>
                        
                        第三方框架
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter active" data-level="0.4.1" data-path="frameworks/afnetworking.html">
            
                
                    <a href="../frameworks/afnetworking.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.4.1.</b>
                        
                        AFNetworking
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.4.2" data-path="frameworks/svprogresshud sdwebimage.html">
            
                
                    <a href="../frameworks/svprogresshud sdwebimage.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.4.2.</b>
                        
                        SVProgressHUD 和 SDWebImage
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.4.3" data-path="frameworks/snapkit.html">
            
                
                    <a href="../frameworks/snapkit.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.4.3.</b>
                        
                        SnapKit
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.5" data-path="oauth/readme.html">
            
                
                    <a href="../oauth/readme.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.</b>
                        
                        OAuth
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.5.1" data-path="oauth/register app.html">
            
                
                    <a href="../oauth/register app.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.1.</b>
                        
                        注册应用程序
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.5.2" data-path="oauth/load oauth page.html">
            
                
                    <a href="../oauth/load oauth page.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.5.2.</b>
                        
                        加载授权页面
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.6" data-path="access token/readme.html">
            
                
                    <a href="../access token/readme.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.</b>
                        
                        Access Token
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.6.1" data-path="access token/load access token.html">
            
                
                    <a href="../access token/load access token.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.1.</b>
                        
                        加载 AccessToken
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.2" data-path="access token/user account.html">
            
                
                    <a href="../access token/user account.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.2.</b>
                        
                        用户账户模型
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.3" data-path="access token/expires date.html">
            
                
                    <a href="../access token/expires date.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.3.</b>
                        
                        过期日期
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.4" data-path="access token/load user info.html">
            
                
                    <a href="../access token/load user info.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.4.</b>
                        
                        加载用户信息
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.5" data-path="access token/archive user account.html">
            
                
                    <a href="../access token/archive user account.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.5.</b>
                        
                        归档 &amp; 解档
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.6" data-path="access token/view model.html">
            
                
                    <a href="../access token/view model.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.6.</b>
                        
                        视图模型
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.6.7" data-path="access token/error enum.html">
            
                
                    <a href="../access token/error enum.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.6.7.</b>
                        
                        自定义错误枚举
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.7" data-path="newfeature/index.html">
            
                
                    <a href="../newfeature/index.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.</b>
                        
                        新特性和欢迎界面
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.7.1" data-path="newfeature/newfeature.html">
            
                
                    <a href="../newfeature/newfeature.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.1.</b>
                        
                        新特性
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.2" data-path="newfeature/welcome.html">
            
                
                    <a href="../newfeature/welcome.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.2.</b>
                        
                        欢迎界面
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.7.3" data-path="newfeature/switch vc.html">
            
                
                    <a href="../newfeature/switch vc.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.7.3.</b>
                        
                        切换界面
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.8" data-path="homepage/index.html">
            
                
                    <a href="../homepage/index.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.</b>
                        
                        首页布局
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.8.1" data-path="homepage/status model.html">
            
                
                    <a href="../homepage/status model.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.1.</b>
                        
                        微博数据模型
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.2" data-path="homepage/tableview show data.html">
            
                
                    <a href="../homepage/tableview show data.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.2.</b>
                        
                        显示表格数据
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.3" data-path="homepage/user model.html">
            
                
                    <a href="../homepage/user model.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.3.</b>
                        
                        用户模型
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.4" data-path="homepage/status view model.html">
            
                
                    <a href="../homepage/status view model.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.4.</b>
                        
                        微博视图模型
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.5" data-path="homepage/custom cell.html">
            
                
                    <a href="../homepage/custom cell.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.5.</b>
                        
                        自定义 Cell
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.6" data-path="homepage/prepare for pictureview.html">
            
                
                    <a href="../homepage/prepare for pictureview.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.6.</b>
                        
                        配图视图准备
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.7" data-path="homepage/picture view.html">
            
                
                    <a href="../homepage/picture view.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.7.</b>
                        
                        配图视图
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.8" data-path="homepage/retweeted_status.html">
            
                
                    <a href="../homepage/retweeted_status.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.8.</b>
                        
                        转发微博
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.8.9" data-path="homepage/single picture.html">
            
                
                    <a href="../homepage/single picture.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.8.9.</b>
                        
                        单张图片比例
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.9" data-path="refresh/index.html">
            
                
                    <a href="../refresh/index.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.</b>
                        
                        刷新
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.9.1" data-path="refresh/pullup view.html">
            
                
                    <a href="../refresh/pullup view.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.1.</b>
                        
                        上拉刷新控件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.2" data-path="refresh/refresh data.html">
            
                
                    <a href="../refresh/refresh data.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.2.</b>
                        
                        刷新数据
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.9.3" data-path="refresh/pulldown tips.html">
            
                
                    <a href="../refresh/pulldown tips.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.9.3.</b>
                        
                        下拉刷新提示
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.10" data-path="compose/index.html">
            
                
                    <a href="../compose/index.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.10.</b>
                        
                        发布微博
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.10.1" data-path="compose/setup ui.html">
            
                
                    <a href="../compose/setup ui.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.10.1.</b>
                        
                        搭建界面
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.10.2" data-path="compose/select picture.html">
            
                
                    <a href="../compose/select picture.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.10.2.</b>
                        
                        选择照片
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.10.3" data-path="compose/post status.html">
            
                
                    <a href="../compose/post status.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.10.3.</b>
                        
                        发布微博
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.11" data-path="emoticon/index.html">
            
                
                    <a href="../emoticon/index.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.</b>
                        
                        表情键盘
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.11.1" data-path="emoticon/prepare ui.html">
            
                
                    <a href="../emoticon/prepare ui.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.1.</b>
                        
                        准备界面
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11.2" data-path="emoticon/load bundle data.html">
            
                
                    <a href="../emoticon/load bundle data.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.2.</b>
                        
                        加载模型数据
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11.3" data-path="emoticon/show emoticon.html">
            
                
                    <a href="../emoticon/show emoticon.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.3.</b>
                        
                        显示表情符号
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11.4" data-path="emoticon/upgrade model.html">
            
                
                    <a href="../emoticon/upgrade model.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.4.</b>
                        
                        提升数据模型
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11.5" data-path="emoticon/selected emoticon.html">
            
                
                    <a href="../emoticon/selected emoticon.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.5.</b>
                        
                        选中表情事件
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11.6" data-path="emoticon/attribute text.html">
            
                
                    <a href="../emoticon/attribute text.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.6.</b>
                        
                        属性文本
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11.7" data-path="emoticon/merge_emoticon.html">
            
                
                    <a href="../emoticon/merge_emoticon.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.7.</b>
                        
                        整合到新浪微博
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.11.8" data-path="emoticon/favorite emoticon.html">
            
                
                    <a href="../emoticon/favorite emoticon.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.11.8.</b>
                        
                        内存表情排序
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.12" data-path="sqlite/index.html">
            
                
                    <a href="../sqlite/index.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.</b>
                        
                        数据缓存
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.12.1" data-path="sqlite/data model.html">
            
                
                    <a href="../sqlite/data model.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.1.</b>
                        
                        数据模型设计
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.2" data-path="sqlite/statusdal.html">
            
                
                    <a href="../sqlite/statusdal.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.2.</b>
                        
                        数据访问层
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.12.3" data-path="sqlite/clean cache.html">
            
                
                    <a href="../sqlite/clean cache.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.12.3.</b>
                        
                        清理数据缓存
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.13" data-path="ending/index.html">
            
                
                    <a href="../ending/index.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.13.</b>
                        
                        微博收尾
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.13.1" data-path="ending/status create at.html">
            
                
                    <a href="../ending/status create at.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.13.1.</b>
                        
                        微博时间
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.13.2" data-path="ending/regex.html">
            
                
                    <a href="../ending/regex.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.13.2.</b>
                        
                        正则表达式
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.13.3" data-path="ending/emoticon string.html">
            
                
                    <a href="../ending/emoticon string.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.13.3.</b>
                        
                        表情字符串
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.13.4" data-path="ending/fflabel.html">
            
                
                    <a href="../ending/fflabel.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.13.4.</b>
                        
                        FFLabel
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.13.5" data-path="ending/textkit.html">
            
                
                    <a href="../ending/textkit.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.13.5.</b>
                        
                        TextKit
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="0.14" data-path="appendix/readme.html">
            
                
                    <a href="../appendix/readme.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.14.</b>
                        
                        附录
                    </a>
                
            
            
            <ul class="articles">
                
    
        <li class="chapter " data-level="0.14.1" data-path="appendix/image assets.html">
            
                
                    <a href="../appendix/image assets.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.14.1.</b>
                        
                        图片素材
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.14.2" data-path="appendix/cocoa pod.html">
            
                
                    <a href="../appendix/cocoa pod.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.14.2.</b>
                        
                        cocoa pod
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.14.3" data-path="appendix/singleton.html">
            
                
                    <a href="../appendix/singleton.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.14.3.</b>
                        
                        单例
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.14.4" data-path="appendix/swift_vs_oc.html">
            
                
                    <a href="../appendix/swift_vs_oc.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.14.4.</b>
                        
                        为什么要学习 Swift
                    </a>
                
            
            
        </li>
    
        <li class="chapter " data-level="0.14.5" data-path="appendix/emoji.html">
            
                
                    <a href="../appendix/emoji.html">
                        <i class="fa fa-check"></i>
                        
                            <b>0.14.5.</b>
                        
                        emoji
                    </a>
                
            
            
        </li>
    

            </ul>
            
        </li>
    

            </ul>
            
        </li>
    


        
        <li class="divider"></li>
        <li>
            <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
                Published with GitBook
            </a>
        </li>
        
    </ul>
</div>

    <div class="book-body">
        <div class="body-inner">
            <div class="book-header">
    <!-- Actions Left -->
    <a href="#" class="btn pull-left toggle-summary" aria-label="Table of Contents"><i class="fa fa-align-justify"></i></a>
    <a href="#" class="btn pull-left toggle-search" aria-label="Search"><i class="fa fa-search"></i></a>
    
    <div id="font-settings-wrapper" class="dropdown pull-left">
        <a href="#" class="btn toggle-dropdown" aria-label="Font Settings"><i class="fa fa-font"></i>
        </a>
        <div class="dropdown-menu font-settings">
    <div class="dropdown-caret">
        <span class="caret-outer"></span>
        <span class="caret-inner"></span>
    </div>

    <div class="buttons">
        <button type="button" id="reduce-font-size" class="button size-2">A</button>
        <button type="button" id="enlarge-font-size" class="button size-2">A</button>
    </div>

    <div class="buttons font-family-list">
        <button type="button" data-font="0" class="button">Serif</button>
        <button type="button" data-font="1" class="button">Sans</button>
    </div>

    <div class="buttons color-theme-list">
        <button type="button" id="color-theme-preview-0" class="button size-3" data-theme="0">White</button>
        <button type="button" id="color-theme-preview-1" class="button size-3" data-theme="1">Sepia</button>
        <button type="button" id="color-theme-preview-2" class="button size-3" data-theme="2">Night</button>
    </div>
</div>

    </div>

    <!-- Actions Right -->
    
    <div class="dropdown pull-right">
        <a href="#" class="btn toggle-dropdown" aria-label="Share"><i class="fa fa-share-alt"></i>
        </a>
        <div class="dropdown-menu font-settings dropdown-left">
            <div class="dropdown-caret">
                <span class="caret-outer"></span>
                <span class="caret-inner"></span>
            </div>
            <div class="buttons">
                <button type="button" data-sharing="twitter" class="button">
                    Share on Twitter
                </button>
                <button type="button" data-sharing="google-plus" class="button">
                    Share on Google
                </button>
                <button type="button" data-sharing="facebook" class="button">
                    Share on Facebook
                </button>
                <button type="button" data-sharing="weibo" class="button">
                    Share on Weibo
                </button>
                <button type="button" data-sharing="instapaper" class="button">
                    Share on Instapaper
                </button>
            </div>
        </div>
    </div>
    

    
    <a href="#" target="_blank" class="btn pull-right google-plus-sharing-link sharing-link" data-sharing="google-plus" aria-label="Google"><i class="fa fa-google-plus"></i></a>
    
    
    <a href="#" target="_blank" class="btn pull-right facebook-sharing-link sharing-link" data-sharing="facebook" aria-label="Facebook"><i class="fa fa-facebook"></i></a>
    
    
    <a href="#" target="_blank" class="btn pull-right twitter-sharing-link sharing-link" data-sharing="twitter" aria-label="Twitter"><i class="fa fa-twitter"></i></a>
    
    
    


    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="../" >新浪微博开发笔记</a>
    </h1>
</div>

            <div class="page-wrapper" tabindex="-1">
                <div class="page-inner">
                
                
                    <section class="normal" id="section-">
                    
                        <h1 id="afnetworking">AFNetworking</h1>
<h2 id="ats-%E8%AE%BE%E7%BD%AE">ATS &#x8BBE;&#x7F6E;</h2>
<pre><code class="lang-plist"><span class="hljs-tag">&lt;<span class="hljs-title">key</span>&gt;</span>NSAppTransportSecurity<span class="hljs-tag">&lt;/<span class="hljs-title">key</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">dict</span>&gt;</span>
  <span class="hljs-comment">&lt;!--Include to allow all connections (DANGER)--&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-title">key</span>&gt;</span>NSAllowsArbitraryLoads<span class="hljs-tag">&lt;/<span class="hljs-title">key</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-title">true</span>/&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">dict</span>&gt;</span>
</code></pre>
<h2 id="%E5%B0%81%E8%A3%85%E7%BD%91%E7%BB%9C%E6%A1%86%E6%9E%B6%E7%9A%84%E5%BF%85%E8%A6%81%E6%80%A7">&#x5C01;&#x88C5;&#x7F51;&#x7EDC;&#x6846;&#x67B6;&#x7684;&#x5FC5;&#x8981;&#x6027;</h2>
<ul>
<li>&#x5728;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x5F00;&#x53D1;&#x4E2D;&#xFF0C;&#x4E00;&#x5B9A;&#x8981;&#x5C01;&#x88C5;&#x9694;&#x79BB;&#x7F51;&#x7EDC;&#x6846;&#x67B6;</li>
<li>&#x793A;&#x610F;&#x56FE;&#x5982;&#x4E0B;&#xFF1A;</li>
</ul>
<p><img src="&#x7F51;&#x7EDC;&#x6846;&#x67B6;.png" alt=""></p>
<h2 id="oc-%E5%B0%81%E8%A3%85%E7%BD%91%E7%BB%9C%E5%B7%A5%E5%85%B7">OC &#x5C01;&#x88C5;&#x7F51;&#x7EDC;&#x5DE5;&#x5177;</h2>
<ul>
<li>&#x65B0;&#x5EFA;&#x7F51;&#x7EDC;&#x5DE5;&#x5177;&#x7C7B; <code>NetworkTools</code></li>
<li>&#x5B9E;&#x73B0;&#x5355;&#x4F8B;</li>
</ul>
<pre><code class="lang-objc">+ (instancetype)sharedTools {

    <span class="hljs-keyword">static</span> NetworkTools *instance;

    <span class="hljs-keyword">static</span> <span class="hljs-built_in">dispatch_once_t</span> onceToken;
    <span class="hljs-built_in">dispatch_once</span>(&amp;onceToken, ^{
        instance = [[NetworkTools alloc] initWithBaseURL:<span class="hljs-literal">nil</span>];

        instance<span class="hljs-variable">.responseSerializer</span><span class="hljs-variable">.acceptableContentTypes</span> = [instance<span class="hljs-variable">.responseSerializer</span><span class="hljs-variable">.acceptableContentTypes</span> setByAddingObject:<span class="hljs-string">@&quot;text/html&quot;</span>];
    });

    <span class="hljs-keyword">return</span> instance;
}
</code></pre>
<ul>
<li>&#x5EFA;&#x7ACB;&#x7F51;&#x7EDC;&#x8BF7;&#x6C42;&#x65B9;&#x6CD5;</li>
</ul>
<pre><code class="lang-objc">- (<span class="hljs-keyword">void</span>)request:(<span class="hljs-built_in">NSString</span> *)URLString parameters:(<span class="hljs-keyword">id</span>)parameters finished:(<span class="hljs-keyword">void</span> (^)(<span class="hljs-keyword">id</span> result, <span class="hljs-built_in">NSError</span> *error))finished {

    NSAssert(finished != <span class="hljs-literal">nil</span>, <span class="hljs-string">@&quot;&#x5FC5;&#x987B;&#x8F93;&#x5165;&#x5B8C;&#x6210;&#x56DE;&#x8C03;&quot;</span>);

    [<span class="hljs-keyword">self</span> GET:URLString parameters:parameters success:^(<span class="hljs-built_in">NSURLSessionDataTask</span> * _Nonnull task, <span class="hljs-keyword">id</span>  _Nonnull responseObject) {
        finished(responseObject, <span class="hljs-literal">nil</span>);
    } failure:^(<span class="hljs-built_in">NSURLSessionDataTask</span> * _Nonnull task, <span class="hljs-built_in">NSError</span> * _Nonnull error) {
        finished(<span class="hljs-literal">nil</span>, error);
    }];
}
</code></pre>
<ul>
<li>&#x6D4B;&#x8BD5;&#x7F51;&#x7EDC;&#x8BF7;&#x6C42;</li>
</ul>
<pre><code class="lang-objc">[[NetworkTools sharedTools] request:<span class="hljs-string">@&quot;http://www.weather.com.cn/data/sk/101010100.html&quot;</span> parameters:<span class="hljs-literal">nil</span> finished:^(<span class="hljs-keyword">id</span> result, <span class="hljs-built_in">NSError</span> *error) {
    <span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;%@ %@&quot;</span>, result, error);
}];
</code></pre>
<ul>
<li>&#x5B9A;&#x4E49; HTTP &#x8BF7;&#x6C42;&#x679A;&#x4E3E;&#x7C7B;&#x578B;</li>
</ul>
<pre><code class="lang-swift"><span class="hljs-comment">/// HTTP &#x8BF7;&#x6C42;&#x65B9;&#x6CD5;&#x679A;&#x4E3E;</span>
typedef <span class="hljs-class"><span class="hljs-keyword">enum</span> : <span class="hljs-title">NSUInteger</span> </span>{
    <span class="hljs-type">GET</span>,
    <span class="hljs-type">POST</span>,
} <span class="hljs-type">HTTPRequestMethod</span>;
</code></pre>
<ul>
<li>&#x4ECE; <code>AFHTTPSessionManager.m</code> &#x4E2D;&#x590D;&#x5236; <code>dataTaskWithHTTPMethod</code> &#x51FD;&#x6570;&#x5B9A;&#x4E49;</li>
</ul>
<pre><code class="lang-swift">@<span class="hljs-class"><span class="hljs-keyword">protocol</span> <span class="hljs-title">NetworkToolsProxy</span> &lt;<span class="hljs-title">NSObject</span>&gt;

@<span class="hljs-title">optional</span>
- (<span class="hljs-title">NSURLSessionDataTask</span> *)<span class="hljs-title">dataTaskWithHTTPMethod</span>:(<span class="hljs-title">NSString</span> *)<span class="hljs-title">method</span>
                                       <span class="hljs-title">URLString</span>:(<span class="hljs-title">NSString</span> *)<span class="hljs-title">URLString</span>
                                      <span class="hljs-title">parameters</span>:(<span class="hljs-title">id</span>)<span class="hljs-title">parameters</span>
                                         <span class="hljs-title">success</span>:(<span class="hljs-title">void</span> (^)(<span class="hljs-title">NSURLSessionDataTask</span> *, <span class="hljs-title">id</span>))<span class="hljs-title">success</span>
                                         <span class="hljs-title">failure</span>:(<span class="hljs-title">void</span> (^)(<span class="hljs-title">NSURLSessionDataTask</span> *, <span class="hljs-title">NSError</span> *))<span class="hljs-title">failure</span>;

@<span class="hljs-title">end</span>
</span></code></pre>
<ul>
<li>&#x4FEE;&#x6539; <code>request</code> &#x65B9;&#x6CD5;</li>
</ul>
<pre><code class="lang-objc">- (<span class="hljs-keyword">void</span>)request:(HTTPRequestMethod)method URLString:(<span class="hljs-built_in">NSString</span> *)URLString parameters:(<span class="hljs-keyword">id</span>)parameters finished:(<span class="hljs-keyword">void</span> (^)(<span class="hljs-keyword">id</span> result, <span class="hljs-built_in">NSError</span> *error))finished {

    NSAssert(finished != <span class="hljs-literal">nil</span>, <span class="hljs-string">@&quot;&#x5FC5;&#x987B;&#x8F93;&#x5165;&#x5B8C;&#x6210;&#x56DE;&#x8C03;&quot;</span>);
    <span class="hljs-built_in">NSString</span> *methodName = (method == GET) ? <span class="hljs-string">@&quot;GET&quot;</span> : <span class="hljs-string">@&quot;POST&quot;</span>;

    [[<span class="hljs-keyword">self</span> dataTaskWithHTTPMethod:methodName URLString:URLString parameters:parameters success:^(<span class="hljs-built_in">NSURLSessionDataTask</span> * _Nonnull task, <span class="hljs-keyword">id</span>  _Nonnull responseObject) {
        finished(responseObject, <span class="hljs-literal">nil</span>);
    } failure:^(<span class="hljs-built_in">NSURLSessionDataTask</span> * _Nonnull task, <span class="hljs-built_in">NSError</span> * _Nonnull error) {
        finished(<span class="hljs-literal">nil</span>, error);
    }] resume];
}
</code></pre>
<ul>
<li>&#x6D4B;&#x8BD5; GET &#x8BF7;&#x6C42;</li>
</ul>
<pre><code class="lang-objc">[[NetworkTools sharedTools] request:GET URLString:<span class="hljs-string">@&quot;http://www.weather.com.cn/data/sk/101010100.html&quot;</span> parameters:<span class="hljs-literal">nil</span> finished:^(<span class="hljs-keyword">id</span> result, <span class="hljs-built_in">NSError</span> *error) {

    <span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;%@ %@&quot;</span>, result, error);
}];
</code></pre>
<ul>
<li>&#x6D4B;&#x8BD5; POST &#x8BF7;&#x6C42;</li>
</ul>
<pre><code class="lang-objc">[[NetworkTools sharedTools] request:POST URLString:<span class="hljs-string">@&quot;http://httpbin.org/post&quot;</span> parameters:@{<span class="hljs-string">@&quot;name&quot;</span>: <span class="hljs-string">@&quot;zhangsan&quot;</span>, <span class="hljs-string">@&quot;age&quot;</span>: @<span class="hljs-number">18</span>} finished:^(<span class="hljs-keyword">id</span> result, <span class="hljs-built_in">NSError</span> *error) {

    <span class="hljs-built_in">NSLog</span>(<span class="hljs-string">@&quot;%@ %@&quot;</span>, result, error);
}];
</code></pre>
<h2 id="swift-%E5%B0%81%E8%A3%85%E7%BD%91%E7%BB%9C%E5%B7%A5%E5%85%B7">Swift &#x5C01;&#x88C5;&#x7F51;&#x7EDC;&#x5DE5;&#x5177;</h2>
<pre><code class="lang-swift"><span class="hljs-class"><span class="hljs-keyword">enum</span> <span class="hljs-title">HTTPRequestMethod</span>: <span class="hljs-title">String</span> </span>{
    <span class="hljs-keyword">case</span> <span class="hljs-type">GET</span> = <span class="hljs-string">&quot;GET&quot;</span>
    <span class="hljs-keyword">case</span> <span class="hljs-type">POST</span> = <span class="hljs-string">&quot;POST&quot;</span>
}

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">NetworkTools</span>: <span class="hljs-title">AFHTTPSessionManager</span> </span>{

    <span class="hljs-comment">// &#x5355;&#x4F8B;</span>
    <span class="hljs-keyword">static</span> <span class="hljs-keyword">let</span> sharedTools: <span class="hljs-type">NetworkTools</span> = {
        <span class="hljs-keyword">let</span> instance = <span class="hljs-type">NetworkTools</span>(baseURL: <span class="hljs-built_in">nil</span>)

        instance.responseSerializer.acceptableContentTypes?.insert(<span class="hljs-string">&quot;text/html&quot;</span>)

        <span class="hljs-keyword">return</span> instance
    }()

    <span class="hljs-comment">// &#x7F51;&#x7EDC;&#x8BF7;&#x6C42;&#x65B9;&#x6CD5;</span>
    <span class="hljs-func"><span class="hljs-keyword">func</span> <span class="hljs-title">request</span><span class="hljs-params">(method: HTTPRequestMethod, URLString: String, parameters: AnyObject?, finished: <span class="hljs-params">(result: AnyObject?, error: NSError?)</span>-&gt;<span class="hljs-params">()</span>)</span> </span>{

        <span class="hljs-keyword">let</span> success = { (task: <span class="hljs-type">NSURLSessionDataTask</span>, result: <span class="hljs-type">AnyObject</span>) -&gt; <span class="hljs-type">Void</span> <span class="hljs-keyword">in</span>
            finished(result: result, error: <span class="hljs-built_in">nil</span>)
        }
        <span class="hljs-keyword">let</span> failure = { (task: <span class="hljs-type">NSURLSessionDataTask</span>, error: <span class="hljs-type">NSError</span>) -&gt; <span class="hljs-type">Void</span> <span class="hljs-keyword">in</span>
            <span class="hljs-built_in">print</span>(error)
            finished(result: <span class="hljs-built_in">nil</span>, error: error)
        }

        <span class="hljs-keyword">if</span> method == .<span class="hljs-type">GET</span> {
            <span class="hljs-type">GET</span>(<span class="hljs-type">URLString</span>, parameters: parameters, success: success, failure: failure)
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-type">POST</span>(<span class="hljs-type">URLString</span>, parameters: parameters, success: success, failure: failure)
        }
    }
}
</code></pre>

                    
                    </section>
                
                
                </div>
            </div>
        </div>

        
        <a href="../frameworks/readme.html" class="navigation navigation-prev " aria-label="Previous page: 第三方框架"><i class="fa fa-angle-left"></i></a>
        
        
        <a href="../frameworks/svprogresshud sdwebimage.html" class="navigation navigation-next " aria-label="Next page: SVProgressHUD 和 SDWebImage"><i class="fa fa-angle-right"></i></a>
        
    </div>
</div>

        
<script src="../gitbook/app.js"></script>

<script>
require(["gitbook"], function(gitbook) {
    var config = {"fontSettings":{"theme":null,"family":"sans","size":2}};
    gitbook.start(config);
});
</script>

        
    </body>
    
</html>
